import { Component } from '@angular/core';
import { NavController,ItemSliding, ModalController } from 'ionic-angular';
import { s } from '@angular/core/src/render3';
import { Task } from './task';
import { HttpDataProvider } from '../../providers/http-data/http-data';
import { InputTaskPage } from '../input-task/input-task';

@Component({
  selector: 'page-tasklist',
  templateUrl: 'tasklist.html'
})
export class TaskListPage {

  tasks: Task[] = [];

  constructor(
    public navCtrl: NavController,
    public modalCtrl: ModalController,
    public httpData: HttpDataProvider) {

  }

  ionViewDidLoad(){
  //  this.tasks = [
  //    {title: '牛奶',status:'open'},
  //    {title: '果汁',status:'open'},
  //    {title: '可乐',status:'open'},
  //    {title: '茶水',status:'open'}
  //  ]
    this.httpData.getTaskList().subscribe(tasks =>{ 
      this.tasks = tasks;
      console.log(tasks);
    });

  }
// 新增待办事项
  addTask(){
    // let theNewTask: string = prompt("新任务");
    // if (theNewTask !== '') {
    //   this.tasks.push({title: theNewTask, status: 'open'});
    // }
    let addModal = this.modalCtrl.create(InputTaskPage);

    addModal.onDidDismiss((task : Task) =>{
      if (task) {
        this.tasks.push(task);
      }
    });

    addModal.present();
  }

  editTask(task: Task){
    if (task.status === 'done') {
      return;
    }
    const index : number = this.tasks.indexOf(task);
    let editModal = this.modalCtrl.create(InputTaskPage,{task: task});

    editModal.onDidDismiss(
      (task) => {
        if (task) {
          this.tasks[index] = task;
        }
      }
    );

    editModal.present();
  }

// 标记待办事项
  markAsDone(slidingItem: ItemSliding, task: Task){
    task.status ='done';
    this.httpData.updateTask(task).subscribe();
    slidingItem.close();
  }
// 删除待办事项
  removeTask(slidingItem: ItemSliding, task: Task){
    task.status ='removed';
    let index = this.tasks.indexOf(task);
    if (index > -1) {
      this.tasks.splice(index,1);
    }
    this.httpData.deleteTask(task).subscribe();
    slidingItem.close();
  }

  /**
   * 下拉刷新
   * @param refresher 
   */
  doRefresh(refresher: any){
    setTimeout(() => {
      this.httpData.getTaskList().subscribe(tasks =>{ 
        this.tasks = tasks;
      });
      refresher.complete();
    },2000);
  }

}
